]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
extensionSystem: Remove 'disabled-extensions' blacklist
authorJasper St. Pierre <jstpierre@mecheye.net>
Thu, 18 Aug 2011 11:56:22 +0000 (07:56 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Wed, 24 Aug 2011 17:58:22 +0000 (13:58 -0400)
The two similar keys were hard to manipulate to have specific effects, so just
remove one. Now there is an *explicit* whitelist: all extensions must be in the
'enabled-extensions' for them to be loaded.

https://bugzilla.gnome.org/show_bug.cgi?id=654770

data/org.gnome.shell.gschema.xml.in
js/ui/extensionSystem.js

index 77b037663e4a85bd5f252ddcf840c36e1a407e87..924a85061dffac6f110877c6d797558f0c9bf7bf 100644 (file)
         using the Alt-F2 dialog.
       </_description>
     </key>
-    <key name="disabled-extensions" type="as">
-      <default>[]</default>
-      <_summary>Uuids of extensions to disable</_summary>
-      <_description>
-        GNOME Shell extensions have a uuid property; this key lists extensions
-        which should not be loaded.  This setting overrides enabled-extensions
-        for extensions that appear in both lists.
-      </_description>
-    </key>
     <key name="enabled-extensions" type="as">
       <default>[]</default>
       <_summary>Uuids of extensions to enable</_summary>
index 813290287553183c8d46ce11d2536d6676279270..c4723a0cbb24444114a8eb218ce20e81b93c3fdc 100644 (file)
@@ -27,7 +27,6 @@ const extensionMeta = {};
 // Maps uuid -> importer object (extension directory tree)
 const extensions = {};
 // Arrays of uuids
-var disabledExtensions;
 var enabledExtensions;
 // GFile for user extensions
 var userExtensionsDir = null;
@@ -44,6 +43,8 @@ const disconnect = Lang.bind(_signals, _signals.disconnect);
 // UUID => Array of error messages
 var errors = {};
 
+const ENABLED_EXTENSIONS_KEY = 'enabled-extensions';
+
 /**
  * versionCheck:
  * @required: an array of versions we're compatible with
@@ -201,8 +202,7 @@ function init() {
         global.logError('' + e);
     }
 
-    disabledExtensions = global.settings.get_strv('disabled-extensions', -1);
-    enabledExtensions = global.settings.get_strv('enabled-extensions', -1);
+    enabledExtensions = global.settings.get_strv(ENABLED_EXTENSIONS_KEY);
 }
 
 function _loadExtensionsIn(dir, type) {
@@ -220,11 +220,8 @@ function _loadExtensionsIn(dir, type) {
         if (fileType != Gio.FileType.DIRECTORY)
             continue;
         let name = info.get_name();
-       // Enable all but disabled extensions if enabledExtensions is not set.
-       // If it is set, enable one those, except they are disabled as well.
-        let enabled = (enabledExtensions.length == 0 || enabledExtensions.indexOf(name) >= 0)
-           && disabledExtensions.indexOf(name) < 0;
         let child = dir.get_child(name);
+        let enabled = enabledExtensions.indexOf(name) != -1;
         loadExtension(child, enabled, type);
     }
     fileEnum.close(null);